import type { components } from '@/genapi/wh';
import { whManagerBsTbCommitmentGetPageUsingPost } from '@/genapi/wh';
import { usePage } from '@/hooks/use-page';
// import { useCompanyStore } from '@/stores/company';
import { useUserStore } from '@/stores/user';

const userStore = useUserStore();
export const [createState, injectState] = createInjectionState(
  () => {
    // const companyStore = useCompanyStore();
    const filter = ref<components['schemas']['TbCommitmentQueryDTO']>();

    const page = usePage({
      initPageSize: 15,
      fetch: async ({ pageSize, currentPage }) => {
        const { data } = await whManagerBsTbCommitmentGetPageUsingPost({
          data: {
            size: pageSize,
            current: currentPage,
            query: {
              ...filter.value,
              enterpriseId: userStore.userInfo?.systemUser?.relatedId,
            },
          },
        });
        return {
          records: data?.records ?? [],
          total: data?.total ?? 0,
          pageSize,
        };
      },
    });

    watchDeep(filter, () => page.execute({ currentPage: 0 }));

    // 当前选中的列表项
    const selectedList = shallowRef<components['schemas']['TbCommitmentDuiXiang'][]>([]);

    return {
      page,
      filter,
      // detailDialogRef,
      selectedList,
    };
  },
  {
    injectionKey: 'state',
  },
);
